package com.example.leetcode.day;

import java.util.Objects;
import java.util.Stack;

/**
 * 给定 s 和 t 两个字符串，当它们分别被输入到空白的文本编辑器后，如果两者相等，返回 true 。# 代表退格字符。
 *
 * 注意：如果对空文本输入退格字符，文本继续为空。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/backspace-string-compare
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Day844 {

    public boolean backspaceCompare(String s, String t) {
        return Objects.equals(convert(s),convert(t));
    }


    private String convert(String s) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0 ;i<s.length();i++) {
            char c = s.charAt(i);
            if (c != '#') {
                stack.add(c);
            }else {
                if (!stack.isEmpty()) {
                    stack.pop();
                }
            }
        }
        StringBuilder sb = new StringBuilder("");
        while (!stack.isEmpty()) {
            Character pop = stack.pop();
            sb.append(pop);
        }
        return sb.toString();
    }
}
